package com.banmao.algorithm.No901To1100.No1047;

public class Solution2 {

    public String removeDuplicates(String s) {
        char[] chars = s.toCharArray();
        // 遍历整个字符数组
        for (int i = 1; i < s.length(); i++) {
            // left是起始指针
            int left = i - 1;
            // 当i小于字符数组长度 并且 起始指针指向的字符与i指向的字符相同时
            while (i < chars.length && chars[i] == chars[left]) {
                // 将两个指针指向的字符一同置为0
                // 注意此处将i进行了自增操作，因此后面left重置时不会被陷入死循环
                chars[i++] = '0';
                chars[left] = '0';
                // 这步循环，是将起始指针重置
                // 如果起始指针指向的字符已被删除，并且起始指针没有指向第一个字符，将起始指针退一
                while (left > 0 && chars[left] == '0') {
                    left--;
                }
            }
        }
        return new String(chars).replace("0", "");
    }

}
